1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */ 
28 
29 module derelict.purple.mime;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 import derelict.glib.gstring;
34 import derelict.glib.glist;
35 import core.stdc.config;
36 import core.stdc.string;
37 
38 extern (C):
39 
40 alias _PurpleMimeDocument PurpleMimeDocument;
41 alias _PurpleMimePart PurpleMimePart;
42 
43 struct _PurpleMimeDocument;
44 
45 
46 struct _PurpleMimePart;
47 
48 
49 version(Derelict_Link_Static)
50 {
51     extern( C ) nothrow 
52     {
53 	    PurpleMimeDocument* purple_mime_document_new();
54         void purple_mime_document_free(PurpleMimeDocument* doc);
55         PurpleMimeDocument* purple_mime_document_parse(const(char)* buf);
56         PurpleMimeDocument* purple_mime_document_parsen(const(char)* buf, gsize len);
57         void purple_mime_document_write(PurpleMimeDocument* doc, GString* str);
58         GList* purple_mime_document_get_fields(PurpleMimeDocument* doc);
59         const(char)* purple_mime_document_get_field(PurpleMimeDocument* doc, const(char)* field);
60         void purple_mime_document_set_field(PurpleMimeDocument* doc, const(char)* field, const(char)* value);
61         GList* purple_mime_document_get_parts(PurpleMimeDocument* doc);
62         PurpleMimePart* purple_mime_part_new(PurpleMimeDocument* doc);
63         GList* purple_mime_part_get_fields(PurpleMimePart* part);
64         const(char)* purple_mime_part_get_field(PurpleMimePart* part, const(char)* field);
65         char* purple_mime_part_get_field_decoded(PurpleMimePart* part, const(char)* field);
66         void purple_mime_part_set_field(PurpleMimePart* part, const(char)* field, const(char)* value);
67         const(char)* purple_mime_part_get_data(PurpleMimePart* part);
68         void purple_mime_part_get_data_decoded(PurpleMimePart* part, guchar** data, gsize* len);
69         gsize purple_mime_part_get_length(PurpleMimePart* part);
70         void purple_mime_part_set_data(PurpleMimePart* part, const(char)* data);
71     }
72 }
73 else
74 {
75     extern( C ) nothrow 
76     {
77 	    alias da_purple_mime_document_new = PurpleMimeDocument* function();																		
78         alias da_purple_mime_document_free = void function(PurpleMimeDocument* doc);															
79         alias da_purple_mime_document_parse = PurpleMimeDocument* function(const(char)* buf);													
80         alias da_purple_mime_document_parsen = PurpleMimeDocument* function(const(char)* buf, gsize len);										
81         alias da_purple_mime_document_write = void function(PurpleMimeDocument* doc, GString* str);												
82         alias da_purple_mime_document_get_fields = GList* function(PurpleMimeDocument* doc);													
83         alias da_purple_mime_document_get_field = const(char)* function(PurpleMimeDocument* doc, const(char)* field);							
84         alias da_purple_mime_document_set_field = void function(PurpleMimeDocument* doc, const(char)* field, const(char)* value);				
85         alias da_purple_mime_document_get_parts = GList* function(PurpleMimeDocument* doc);														
86         alias da_purple_mime_part_new = PurpleMimePart* function(PurpleMimeDocument* doc);														
87         alias da_purple_mime_part_get_fields = GList* function(PurpleMimePart* part);															
88         alias da_purple_mime_part_get_field = const(char)* function(PurpleMimePart* part, const(char)* field);									
89         alias da_purple_mime_part_get_field_decoded = char* function(PurpleMimePart* part, const(char)* field);									
90         alias da_purple_mime_part_set_field = void function(PurpleMimePart* part, const(char)* field, const(char)* value);						
91         alias da_purple_mime_part_get_data = const(char)* function(PurpleMimePart* part);														
92         alias da_purple_mime_part_get_data_decoded = void function(PurpleMimePart* part, guchar** data, gsize* len);							
93         alias da_purple_mime_part_get_length = gsize function(PurpleMimePart* part);															
94         alias da_purple_mime_part_set_data = void function(PurpleMimePart* part, const(char)* data);
95     }
96 
97     __gshared
98     {
99 	    da_purple_mime_document_new purple_mime_document_new;
100 	    da_purple_mime_document_free purple_mime_document_free;
101 	    da_purple_mime_document_parse purple_mime_document_parse;
102 	    da_purple_mime_document_parsen purple_mime_document_parsen;
103 	    da_purple_mime_document_write purple_mime_document_write;
104 	    da_purple_mime_document_get_fields purple_mime_document_get_fields;
105 	    da_purple_mime_document_get_field purple_mime_document_get_field;
106 	    da_purple_mime_document_set_field purple_mime_document_set_field;
107 	    da_purple_mime_document_get_parts purple_mime_document_get_parts;
108 	    da_purple_mime_part_new purple_mime_part_new;
109 	    da_purple_mime_part_get_fields purple_mime_part_get_fields;
110 	    da_purple_mime_part_get_field purple_mime_part_get_field;
111 	    da_purple_mime_part_get_field_decoded purple_mime_part_get_field_decoded;
112 	    da_purple_mime_part_set_field purple_mime_part_set_field;
113 	    da_purple_mime_part_get_data purple_mime_part_get_data;
114 	    da_purple_mime_part_get_data_decoded purple_mime_part_get_data_decoded;
115 	    da_purple_mime_part_get_length purple_mime_part_get_length;
116 	    da_purple_mime_part_set_data purple_mime_part_set_data;
117     }
118 }